home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Source Code / C / Utilities / CommentConverter 1.0.0 / Think C 7.0 Project / Sources / Help.h < prev   
Encoding:
C/C++ Source or Header  |  1993-12-06  |  17.2 KB  |  329 lines  |  [TEXT/KAHL]

  1. #ifndef bsioh
  2. #define bsioh
  3.  
  4. // Alternativ: #pragma once
  5.  
  6. #include <fcntl.h>
  7. #include <float.h>
  8. #include <limits.h>
  9. #include <math.h>
  10. #ifdef ibm
  11. #include <stddef.h>
  12. #endif
  13. #ifdef apple
  14. #include <size_t.h>
  15. #include <stat.h>
  16. #endif
  17. #include <stdarg.h>
  18.  
  19. #include <stdio.h>
  20. #include <string.h>
  21. #include <ctype.h>
  22. #include <stdlib.h>
  23. #include <time.h>
  24. #include <stddef.h>
  25. #include <math.h>
  26.  
  27. #ifdef modus_inter
  28. #ifdef apple
  29. #include <console.h>
  30. #include <pascal.h>
  31. #endif
  32. #endif
  33.  
  34.  
  35. /***************************************************************************/
  36. /*****   Include-Datei für SETI: Allgemein I/O und INTER-MODE          *****/
  37. /*****   Autor:    Andreas Amoroso                                     *****/
  38. /*****   Datum:    11.8.1993                                           *****/
  39. /***************************************************************************/
  40.  
  41.                             
  42.                             /* Konstanten für Betriebsart                            */
  43.                             /* ==========================                           */
  44.                             
  45. #define MCPMODE         1       /* MCP-Modus                                        */
  46. #define INTERACTIVEMODE 0       /* Interaktiver Modus                               */
  47.  
  48.  
  49.                             /* Allgemeines für I/O...                                */
  50.                             /* ======================                               */
  51.  
  52. #define MaxFullPathName FILENAME_MAX       
  53.                             /* Maximaler Pfadname inkl. Extension  (Mac!)           */
  54. #define MaxLineD        132 /* Maximale Länge einer Ausgabezeile in eine Datei       */
  55. #define MaxLineS        80  /* Maximale Länge einer Ausgabezeile auf der Konsole */
  56.  
  57. #ifdef modus_inter
  58. #define MaxLine1        MaxLineS    
  59.                             /* Maximale Länge erste Ausgabezeile auf der Konsole */
  60. #define MaxLine2        MaxLineS
  61.                             /* Maximale Länge zweite Ausgabezeile auf der Konsole   */
  62. #define MaxLineCntS 24      /* Anzahl der Zeilen die am Stueck ausgegeben werden    */
  63. #endif
  64.  
  65. #define MaxMessLen      74  /* Maximale Länge der Ausgabemessage                 */
  66. #define MaxAuxMessLen   20  /* Maximale Länge der zusätzlichen Ausgabemessage     */
  67. #define MaxErrMessLen   50  /* Maximale Länge der Systemfehlermeldung                */
  68. #define MaxModulNamLen  20  /* Maximale Länge des Modulnamen                     */
  69. #define MaxTimeDateLen  21  /* Maximale Länge Date/Time-String                       */
  70. #define MaxDefStrLen    5   /* Maximale Länge eines Defaultstring                    */
  71. #define MaxHeadOutLen   44  /* Maximale Länge der Header informationen               */
  72. #define MaxMenuPointLen 72  /* Maximale Länge der Menüpunkte                      */
  73. #define MaxMenuTitleLen 40  /* Maximale Länge des Menütitels                      */
  74. #define MaxMenuPointCnt 14  /* Maximale Anzahl von Menüpunkten                       */
  75.                             /* Achtung MaxMenuPointCnt <= 16 vorausgesetzt!!!       */
  76. #define MenuOffset      5   /* Kopfzeilen und Space                                 */
  77. #define MaxMenuString   MaxLineS * (MaxMenuPointCnt + MenuOffset)
  78.                             /* Länge Gesamtmenü als String (Ausgabe)              */
  79. #define MenuTitle       " MENU: \0"
  80.                             /* Menüeinleitung                                        */
  81.                             
  82.                             
  83.                             /* Konstanten für I/O: Tasten                            */
  84.                             /* ==========================                           */
  85.                             
  86. #define ENTER       3       /* Taste Enter                                          */
  87. #define HELP        5       /* Taste Help                                           */
  88. #define DELETE      8       /* .                                                    */
  89. #define TAB         9       /*                                                      */
  90. #define NEWLINE     10      /* Return (getchar in buffered console-mode)            */
  91. #define RETURN      13      /*                                                      */
  92. #define ESCAPE      27      /*                                                      */
  93. #define CLEFT       28      /*                                                      */
  94. #define CRIGHT      29      /*                                                      */
  95. #define CUP         30      /*                                                      */
  96. #define CDOWN       31      /*                                                      */
  97. #define PLUS        43      /*                                                      */
  98. #define COLON       44      /*                                                      */
  99. #define MINUS       45      /*                                                      */
  100. #define KEY0        48      /* 0                                                    */
  101. #define KEYa        97      /* Buchstabentasten                                     */
  102. #define KEYA        65      /* .                                                    */
  103. #define KEYe        101     /*                                                      */
  104. #define KEYE        69      /*                                                      */
  105. #define KEYh        104     /*                                                      */
  106. #define KEYH        72      /*                                                      */
  107. #define KEYj        106     /*                                                      */
  108. #define KEYJ        74      /*                                                      */
  109. #define KEYn        110     /*                                                      */
  110. #define KEYN        78      /*                                                      */
  111. #define KEYq        113     /*                                                      */
  112. #define KEYQ        81      /*                                                      */
  113. #define KEYx        120     /*                                                      */
  114. #define KEYX        88      /*                                                      */
  115. #define KEYy        121     /*                                                      */
  116. #define KEYY        89      /*                                                      */
  117. #define KEYS        83        /*                                                        */
  118. #define KEYs        115        /*                                                        */
  119. #define KEYL        76        /*                                                           */
  120. #define KEYl        108        /*                                                        */
  121.                                                                     
  122.  
  123.  
  124.                             /* Konstanten für Input-Return-Codes                     */
  125.                             /* =================================                    */
  126.  
  127. #define     INPUTOK 0       /* Korrekte Eingabe                                     */
  128. #define     INPUTVO 1       /* Leere Eingabe                                        */
  129. #define     INPUTQI 2       /* Eingabe Q                                            */
  130. #define     INPUTHE 4       /* Eingabe H                                            */
  131. #define     INPUTIR 8       /* Unzulässige Eingabe                                  */
  132. #define     INPUTER 16      /* Fehler bei der Eingabe                               */
  133.  
  134.                             
  135.                             /* Konstanten für I/O: Meldungen                         */
  136.                             /* =============================                        */
  137.                             
  138. #define ShortScr        0   /* Ausgabeformate                                       */
  139. #define LongScr         1
  140. // #define ShortFile        /* Future use                                           */
  141. #define LongFile        3   
  142. #define ModusReturn     0   /* Ausgabemodus für GenOutAcknowledge                   */
  143. #define ModusNoRet      1   /* .                                                    */
  144. #define ReqStr          " ----> \0"
  145. #define InfStr          " INFO: \0"
  146. #define SnfStr          " SINF: \0"
  147. #define WrnStr          " WARN: \0"
  148. #define ErrStr          " ERR : \0"
  149. #define SrrStr          " SERR: \0"
  150. #define ReqTStr1        ": \0"
  151. #define ReqTStr2        ": [\0"
  152. #define ReqTStr3        "]\0"
  153. #define HelStr          " Help:\0"
  154. #define LotStr          "+++++ \0"
  155.  
  156. #define AReq            100 /* Acknowledge Request                                  */
  157. #define BReq            101 /* Binary Request                                       */
  158. #define MReq            102 /* Menu Request                                         */
  159.                             /* Achtung, Da es maximal 16 Menüpunkte gibt => 
  160.                             /* EIN CHARACTER ALS HEX bzw x = letzter Menüpunkt + 1  */
  161.                             /* oder h = letzter Menüpunkt + 2                       */
  162. #define IReq            103 /* Integer Request                                      */
  163. #define RReq            104 /* Real Request                                         */
  164. #define SReq            105 /* String Request                                       */
  165.  
  166. #define AReqStr         "Acknowledge Request:\0"
  167. #define BReqStr         "Binary Input Request:\0"
  168. #define MReqStr         "Menu Input Request:\0" 
  169. #define IReqStr         "Integer Input Request:\0"  
  170. #define RReqStr         "Real Input Request:\0" 
  171. #define SReqStr         "String Input Request:\0"   
  172.  
  173.  
  174. #define IInf            200 /* Informational Message                                */
  175. #define AInf            201 /* Information containing user's answer to above request*/
  176. #define EInf            202 /* Explanation                                          */
  177.  
  178. #define IInfStr         "Informational message: \0"
  179. #define AInfStr         "User's answer: \0"
  180. #define EInfStr         "Explanation: \0"                                           
  181.  
  182.  
  183. #define CSnf            300 /* Execution successfully completed                     */
  184. #define WSnf            301 /* Execution completed with warnings                    */
  185. #define ASnf            302 /* Execution abnormally terminated                      */
  186. #define ESnf            303 /* Execution aborted due to error                       */
  187. #define SSnf            304 /* Execution aborted due to severe error                */
  188. #define PSnf            305 /* Computation of "AuxStr" is in progress               */
  189.  
  190. #define CSnfStr         "Execution successfully completed.\0"
  191. #define WSnfStr         "Execution completed with warnings.\0"
  192. #define ASnfStr         "Execution abnormally terminated.\0"
  193. #define ESnfStr         "Execution aborted due to error.\0"
  194. #define SSnfStr         "Execution aborted due to severe error.\0"
  195. #define PSnfStr         "Computation is in progress...\0"
  196.                 
  197.                             /* USE WARNINGS IN CASE OF INPUT ERRORS IN "INTER_MODE! */
  198.                             /* USE ShortScr FORMAT IN INTER MODE UNLESS ERRORS OR   */
  199.                             /* SEVERE ERRORS OCCUR. IN THESE CASES ONLY USE         */
  200.                             /* LongScr FORMAT!!!                                    */
  201.                             /* ==================================================== */
  202.                             
  203. #define IWrn            400 /* Inconsistency detected                               */
  204. #define DWrn            401 /* Incomplete definition detected                       */
  205. #define SWrn            402 /* Unknown syntax detected                              */
  206. #define AWrn            403 /* Data not found                                       */
  207. #define JWrn            404 /* Instruction not found                                */
  208. #define BWrn            405 /* Data invalid                                         */
  209. #define KWrn            406 /* Instruction invalid                                  */
  210.  
  211. #define IWrnStr         "Inconsistency detected.\0"
  212. #define DWrnStr         "Incomplete definition detected.\0"
  213. #define SWrnStr         "Unknown syntax detected.\0"
  214. #define AWrnStr         "Data not found.\0"
  215. #define JWrnStr         "Instruction not found.\0"
  216. #define BWrnStr         "Data invalid.\0"
  217. #define KWrnStr         "Instruction invalid.\0"
  218.  
  219.  
  220. #define IErr            500 /* Fatal inconsistency detected                         */
  221. #define DErr            501 /* Fatal incompleteness in definition detected          */
  222. #define SErr            502 /* Illegal syntax detected                              */
  223. #define AErr            503 /* Required data not found                              */
  224. #define JErr            504 /* Required instruction not found                       */
  225. #define BErr            505 /* Required data invalid                                */
  226. #define KErr            506 /* Required instruction invalid                         */
  227. #define WErr            507 /* Wrong type of input                                  */
  228. #define RErr            508 /* Input out of range                                   */
  229. #define UErr            509 /* Unknown internal error occured                       */
  230. #define EErr            510 /* Program abort requested                              */
  231.  
  232. #define IErrStr         "Fatal inconsistency detected.\0"
  233. #define DErrStr         "Fatal incompleteness in def. detected.\0"
  234. #define SErrStr         "Illegal syntax detected.\0"
  235. #define AErrStr         "Required data not found.\0"
  236. #define JErrStr         "Required instruction not found.\0"
  237. #define BErrStr         "Required data invalid.\0"
  238. #define KErrStr         "Required instruction invalid.\0"
  239. #define WErrStr         "Wrong type of input.\0"
  240. #define RErrStr         "Input out of range.\0"
  241. #define UErrStr         "Unknown internal error occured.\0"
  242. #define EErrStr         "Program abort requested.\0"
  243.  
  244.  
  245. #define ASrr            600 /* Memory request failed.\0"                            */
  246. #define FSrr            601 /* I/O Request failed: Unable to find file              */
  247. #define NSrr            602 /* I/O Request failed: Unable to rename file            */
  248. #define OSrr            603 /* I/O Request failed: Unable to open file              */
  249. #define QSrr            604 /* I/O Request failed: Unable to close file             */
  250. #define RSrr            605 /* I/O Request failed: Unable to read file              */
  251. #define WSrr            606 /* I/O Request failed: Unable to write to file          */
  252. #define CSrr            607 /* I/O Request failed: Unable to create file            */
  253. #define DSrr            608 /* I/O Request failed: Unable to delete file            */
  254. #define USrr            609 /* Unknown external error occured                       */
  255. #define MSrr            610 /* Module not found                                     */
  256. #define ISrr            611 /* Con file not available                                */
  257.  
  258. #define ASrrStr         "Memory request failed.\0"
  259. #define FSrrStr         "I/O Req. failed: Unable to find file.\0"
  260. #define NSrrStr         "I/O Req. failed: Unable to rename file.\0"
  261. #define OSrrStr         "I/O Req. failed: Unable to open file.\0"
  262. #define QSrrStr         "I/O Req. failed: Unable to close file.\0"
  263. #define RSrrStr         "I/O Req. failed: Unable to read file.\0"
  264. #define WSrrStr         "I/O Req. failed: Unable to write to file.\0"
  265. #define CSrrStr         "I/O Req. failed: Unable to create file.\0"
  266. #define DSrrStr         "I/O Req. failed: Unable to delete file.\0"
  267. #define USrrStr         "Unknown external error occured.\0"
  268. #define MSrrStr         "Module not found.\0"
  269. #define ISrrStr            "Con file not available.\0"
  270.  
  271.  
  272. //Types
  273. //=====
  274.  
  275.  
  276. //Machine-Specific
  277. //================
  278.  
  279. #ifdef  ibm
  280. #define MaxFileName     12  /* Maximaler Dateiname inkl. Extension (PC!)            */
  281. #endif
  282.  
  283. #define MaxFileName     31  /* Maximaler Dateiname inkl. Extension (Mac!)           */
  284.  
  285.  
  286. //REAL MACROS
  287. //===========
  288.  
  289. #define bsintmin(a,b) ((((int)a)<=((int)b))?((int)a):((int)b))
  290. #define bsintmax(a,b) ((((int)a)<=((int)b))?((int)b):((int)a))
  291.  
  292.  
  293. //TYPES
  294. //=====
  295.  
  296. enum bsbool {bsFalse = 0, bsTrue = 1};
  297. typedef enum bsbool bsBoolean;
  298.  
  299.  
  300. //PROTOTYPES: COPY THIS INTO YOUR FILE!!!
  301. //            ===========================
  302.  
  303.  
  304. void ConInit(char *);                                   //  Sets Console to 24 * 80 and gets params on macs 
  305. int GenOutHeader(char *,char *,char *);                 //  prints SETI-Header
  306. int GenOutTrailer(void);                                //  prints SETI-Trailor
  307. int GenOutLine(int,int,int,char [],char [],char *,char *,char *,char *);
  308.                                                         //  generates output string, long format
  309. int GenOutLine0(int,int,char [],char *,char *);
  310. int GenOutLine2(int,int,int,char [],char [],char *,char *,char *,char *);
  311. int GenInAnswer(int,int,bsBoolean *,char *,char,int *,int,int,char *,char *,char *,char *,char *);
  312.                                                         //  handles input requests
  313. int GenOutHelp(char *);                                 //  generates Help-Info, NEEDS TO BE ADAPTED!!!
  314.                                                         //  ===========================================
  315. int GenOutMenu(char **, char *,char *, int);            //  generates menus 
  316. void GenInName(char *str);                                //  returns process name
  317. void GenExit(unsigned );                                //  sets error code and terminates program
  318.  
  319.  
  320. //PROTOTYPES: used in this file
  321. #ifdef modus_inter
  322. int GenOutCentered(char *);                             //  centers Title and prints it
  323. int GenOutAcknowledge(int);                             //  generates acknowledge request
  324. int GenOutClrScr(int,char *);                           //  prints count empty lines, up to MaxLineCnt_S
  325. #endif
  326. int GenCorStr(int,char *);                              //  function(outttype)=outstring
  327.  
  328.  
  329. #endif